﻿namespace ParsePtb.util
{
    public class DeviceHelper
    {

        /* public const int WM_DEVICECHANGE = 0x219;
         public const int DBT_DEVICEARRIVAL = 0x8000;    //如果m.Msg的值为0x8000那么表示有U盘插入
         public const int DBT_CONFIGCHANGECANCELED = 0x0019;
         public const int DBT_CONFIGCHANGED = 0x0018;
         public const int DBT_CUSTOMEVENT = 0x8006;
         public const int DBT_DEVICEQUERYREMOVE = 0x8001;
         public const int DBT_DEVICEQUERYREMOVEFAILED = 0x8002;
         public const int DBT_DEVICEREMOVECOMPLETE = 0X8004;
         public const int DBT_DEVICEREMOVEPENDING = 0x8003;
         public const int DBT_DEVICETYPESPECIFIC = 0x8005;
         public const int DBT_DEVNODES_CHANGED = 0x0007;
         public const int DBT_QUERYCHANGECONFIG = 0x0017;
         public const int DBT_USERDEFINED = 0xFFFF;
         public Message mm;


         /// <summary>
         /// 监视Windows消息
         /// </summary>
         /// <param name="m"></param>
         protected override void WndProc(ref Message m)
         {
             try
             {
                 if (m.Msg == WM_DEVICECHANGE)
                 {
                     switch (m.WParam.ToInt32())
                     {
                         case WM_DEVICECHANGE:
                             break;
                         case DBT_DEVICEARRIVAL:         //U盘插入
                             String[] strDrivers = Environment.GetLogicalDrives();
                             listBox1.Items.Add("U盘已插入,盘符为:" + strDrivers[strDrivers.Count() - 1]);
                             break;
                         case DBT_CONFIGCHANGECANCELED:
                             break;
                         case DBT_CONFIGCHANGED:
                             break;
                         case DBT_CUSTOMEVENT:
                             break;
                         case DBT_DEVICEQUERYREMOVE:
                             break;
                         case DBT_DEVICEQUERYREMOVEFAILED:
                             break;
                         case DBT_DEVICEREMOVECOMPLETE:   //U盘卸载
                             break;
                         case DBT_DEVICEREMOVEPENDING:
                             break;
                         case DBT_DEVNODES_CHANGED:
                             break;
                         case DBT_QUERYCHANGECONFIG:
                             break;
                         case DBT_USERDEFINED:
                             break;
                         default:
                             break;
                     }
                 }
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message);
             }
             base.WndProc(ref m); //将系统消息传递自父类的WndProc
         }*/
    }
}
